diff --git a/arch/arm/lib/spl.c b/arch/arm/lib/spl.c
index 4f9b84b..b138974 100644
--- a/arch/arm/lib/spl.c
+++ b/arch/arm/lib/spl.c
@@ -50,7 +50,7 @@
  * This function jumps to an image with argument. Normally an FDT or ATAGS
  * image.
  */
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 #ifdef CONFIG_ARM64
 void __noreturn jump_to_image_linux(struct spl_image_info *spl_image)
 {
diff --git a/common/spl/spl.c b/common/spl/spl.c
index 99cde66..4c101ec 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -87,7 +87,7 @@
  * 0 to not start u-boot
  * positive if u-boot should start
  */
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 __weak int spl_start_uboot(void)
 {
 	puts(SPL_TPL_PROMPT
@@ -353,7 +353,7 @@
 		panic("** no mkimage signature but raw image not supported");
 #endif
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 		ulong start, end;
 
 		if (!bootz_setup((ulong)header, &start, &end)) {
@@ -797,7 +797,7 @@
 		spl_invoke_opensbi(&spl_image);
 		break;
 #endif
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 	case IH_OS_LINUX:
 		debug("Jumping to Linux\n");
 #if defined(CONFIG_SYS_SPL_ARGS_ADDR)
diff --git a/common/spl/spl_ext.c b/common/spl/spl_ext.c
index d73f062..6a28fe9 100644
--- a/common/spl/spl_ext.c
+++ b/common/spl/spl_ext.c
@@ -64,7 +64,7 @@
 	return err < 0;
 }
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 int spl_load_image_ext_os(struct spl_image_info *spl_image,
 			  struct blk_desc *block_dev, int partition)
 {
diff --git a/common/spl/spl_fat.c b/common/spl/spl_fat.c
index c2eb097..576c2e8 100644
--- a/common/spl/spl_fat.c
+++ b/common/spl/spl_fat.c
@@ -112,7 +112,7 @@
 	return (err <= 0);
 }
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 int spl_load_image_fat_os(struct spl_image_info *spl_image,
 			  struct blk_desc *block_dev, int partition)
 {
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index d52f8a3..e1a7d25 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -218,7 +218,7 @@
 }
 #endif
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 static int mmc_load_image_raw_os(struct spl_image_info *spl_image,
 				 struct mmc *mmc)
 {
diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c
index 59f4a84..8ae7d04 100644
--- a/common/spl/spl_nand.c
+++ b/common/spl/spl_nand.c
@@ -121,7 +121,7 @@
 
 	header = spl_get_load_buffer(0, sizeof(*header));
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 	if (!spl_start_uboot()) {
 		/*
 		 * load parameter image
diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c
index 5270401..68c1241 100644
--- a/common/spl/spl_nor.c
+++ b/common/spl/spl_nor.c
@@ -35,7 +35,7 @@
 	 */
 	spl_image->flags |= SPL_COPY_PAYLOAD_ONLY;
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 	if (!spl_start_uboot()) {
 		/*
 		 * Load Linux from its location in NOR flash to its defined
diff --git a/common/spl/spl_sata.c b/common/spl/spl_sata.c
index 535a921..e9f6c5f 100644
--- a/common/spl/spl_sata.c
+++ b/common/spl/spl_sata.c
@@ -88,7 +88,7 @@
 			return -ENODEV;
 	}
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 	if (spl_start_uboot() ||
 	    spl_load_image_fat_os(spl_image, stor_dev,
 				  CONFIG_SYS_SATA_FAT_BOOT_PARTITION))
diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c
index 46ee405..4e20a23 100644
--- a/common/spl/spl_spi.c
+++ b/common/spl/spl_spi.c
@@ -18,7 +18,7 @@
 #include <asm/global_data.h>
 #include <dm/ofnode.h>
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 /*
  * Load the kernel, check for a valid header we can parse, and if found load
  * the kernel and then device tree.
@@ -107,7 +107,7 @@
 						    payload_offs);
 	}
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 	if (spl_start_uboot() || spi_load_image_os(spl_image, flash, header))
 #endif
 	{
diff --git a/common/spl/spl_ubi.c b/common/spl/spl_ubi.c
index de6a63b..2f2d74a 100644
--- a/common/spl/spl_ubi.c
+++ b/common/spl/spl_ubi.c
@@ -45,7 +45,7 @@
 	info.leb_start = CONFIG_SPL_UBI_LEB_START;
 	info.peb_count = CONFIG_SPL_UBI_MAX_PEBS - info.peb_offset;
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 	if (!spl_start_uboot()) {
 		volumes[0].vol_id = CONFIG_SPL_UBI_LOAD_KERNEL_ID;
 		volumes[0].load_addr = (void *)CONFIG_SYS_LOAD_ADDR;
diff --git a/common/spl/spl_usb.c b/common/spl/spl_usb.c
index 3648de3..67d5030 100644
--- a/common/spl/spl_usb.c
+++ b/common/spl/spl_usb.c
@@ -47,7 +47,7 @@
 
 	debug("boot mode - FAT\n");
 
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 	if (spl_start_uboot() ||
 	    spl_load_image_fat_os(spl_image, stor_dev, partition))
 #endif
diff --git a/common/spl/spl_xip.c b/common/spl/spl_xip.c
index 8ce0a09..ba4af38 100644
--- a/common/spl/spl_xip.c
+++ b/common/spl/spl_xip.c
@@ -12,7 +12,7 @@
 static int spl_xip(struct spl_image_info *spl_image,
 		   struct spl_boot_device *bootdev)
 {
-#ifdef CONFIG_SPL_OS_BOOT
+#if CONFIG_IS_ENABLED(OS_BOOT)
 	if (!spl_start_uboot()) {
 		spl_image->arg = (void *)CONFIG_SYS_FDT_BASE;
 		spl_image->name = "Linux";
